package com.bsg.upm.entity;

import java.io.Serializable;
import java.util.Date;

/**
 * 子任务实体类
 * 
 * @author HCK
 *
 */
public class SubTaskEntity implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 子任务编码
	 */
	private String id;

	/**
	 * 子任务操作对象类型
	 */
	private String objType;

	/**
	 * 子任务操作对象编码
	 */
	private String objId;

	/**
	 * 子任务操作对象编码
	 */
	private String objName;

	/**
	 * 子任务操作动作类型
	 */
	private String actionType;

	/**
	 * 是否异步任务
	 */
	private boolean async;

	/**
	 * 超时
	 */
	private Integer timeout;

	/**
	 * 子任务开始时间
	 */
	private Date startDateTime;

	/**
	 * 子任务结束时间
	 */
	private Date endDateTime;

	/**
	 * 子任务状态
	 */
	private String status;

	/**
	 * 子任务请求url
	 */
	private String url;

	/**
	 * 子任务请求方法类型
	 */
	private String methodType;

	/**
	 * 子任务请求参数
	 */
	private String param;

	/**
	 * 子任务对象
	 */
	private Object obj;

	/**
	 * 关联任务编码
	 */
	private String relateTaskId;

	/**
	 * 关联任务状态
	 */
	private Integer relateTaskStatus;

	/**
	 * 关联任务回执
	 */
	private String relateTaskMsg;

	/**
	 * 子任务优先级
	 */
	private Integer priority;

	/**
	 * 所属任务
	 */
	private TaskEntity task;

	/**
	 * 获取子任务编码
	 * 
	 * @return id 子任务编码
	 */
	public String getId() {
		return id;
	}

	/**
	 * 设置子任务编码
	 * 
	 * @param id
	 *            子任务编码
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取子任务操作对象类型
	 * 
	 * @return objType 子任务操作对象类型
	 */
	public String getObjType() {
		return objType;
	}

	/**
	 * 设置子任务操作对象类型
	 * 
	 * @param objType
	 *            子任务操作对象类型
	 */
	public void setObjType(String objType) {
		this.objType = objType;
	}

	/**
	 * 获取子任务操作对象编码
	 * 
	 * @return objId 子任务操作对象编码
	 */
	public String getObjId() {
		return objId;
	}

	/**
	 * 设置子任务操作对象编码
	 * 
	 * @param objId
	 *            子任务操作对象编码
	 */
	public void setObjId(String objId) {
		this.objId = objId;
	}

	/**
	 * 获取子任务操作对象编码
	 * 
	 * @return objName 子任务操作对象编码
	 */
	public String getObjName() {
		return objName;
	}

	/**
	 * 设置子任务操作对象编码
	 * 
	 * @param objName
	 *            子任务操作对象编码
	 */
	public void setObjName(String objName) {
		this.objName = objName;
	}

	/**
	 * 获取子任务操作动作类型
	 * 
	 * @return actionType 子任务操作动作类型
	 */
	public String getActionType() {
		return actionType;
	}

	/**
	 * 设置子任务操作动作类型
	 * 
	 * @param actionType
	 *            子任务操作动作类型
	 */
	public void setActionType(String actionType) {
		this.actionType = actionType;
	}

	/**
	 * 获取是否异步任务
	 * 
	 * @return async 是否异步任务
	 */
	public boolean isAsync() {
		return async;
	}

	/**
	 * 设置是否异步任务
	 * 
	 * @param async
	 *            是否异步任务
	 */
	public void setAsync(boolean async) {
		this.async = async;
	}

	/**
	 * 获取超时
	 * 
	 * @return timeout 超时
	 */
	public Integer getTimeout() {
		return timeout;
	}

	/**
	 * 设置超时
	 * 
	 * @param timeout
	 *            超时
	 */
	public void setTimeout(Integer timeout) {
		this.timeout = timeout;
	}

	/**
	 * 获取子任务开始时间
	 * 
	 * @return startDateTime 子任务开始时间
	 */
	public Date getStartDateTime() {
		return startDateTime;
	}

	/**
	 * 设置子任务开始时间
	 * 
	 * @param startDateTime
	 *            子任务开始时间
	 */
	public void setStartDateTime(Date startDateTime) {
		this.startDateTime = startDateTime;
	}

	/**
	 * 获取子任务结束时间
	 * 
	 * @return endDateTime 子任务结束时间
	 */
	public Date getEndDateTime() {
		return endDateTime;
	}

	/**
	 * 设置子任务结束时间
	 * 
	 * @param endDateTime
	 *            子任务结束时间
	 */
	public void setEndDateTime(Date endDateTime) {
		this.endDateTime = endDateTime;
	}

	/**
	 * 获取子任务状态
	 * 
	 * @return status 子任务状态
	 */
	public String getStatus() {
		return status;
	}

	/**
	 * 设置子任务状态
	 * 
	 * @param status
	 *            子任务状态
	 */
	public void setStatus(String status) {
		this.status = status;
	}

	/**
	 * 获取子任务请求url
	 * 
	 * @return url 子任务请求url
	 */
	public String getUrl() {
		return url;
	}

	/**
	 * 设置子任务请求url
	 * 
	 * @param url
	 *            子任务请求url
	 */
	public void setUrl(String url) {
		this.url = url;
	}

	/**
	 * 获取子任务请求方法类型
	 * 
	 * @return methodType 子任务请求方法类型
	 */
	public String getMethodType() {
		return methodType;
	}

	/**
	 * 设置子任务请求方法类型
	 * 
	 * @param methodType
	 *            子任务请求方法类型
	 */
	public void setMethodType(String methodType) {
		this.methodType = methodType;
	}

	/**
	 * 获取子任务请求参数
	 * 
	 * @return param 子任务请求参数
	 */
	public String getParam() {
		return param;
	}

	/**
	 * 设置子任务请求参数
	 * 
	 * @param param
	 *            子任务请求参数
	 */
	public void setParam(String param) {
		this.param = param;
	}

	/**
	 * 获取子任务对象
	 * 
	 * @return obj 子任务对象
	 */
	public Object getObj() {
		return obj;
	}

	/**
	 * 设置子任务对象
	 * 
	 * @param obj
	 *            子任务对象
	 */
	public void setObj(Object obj) {
		this.obj = obj;
	}

	/**
	 * 获取关联任务编码
	 * 
	 * @return relateTaskId 关联任务编码
	 */
	public String getRelateTaskId() {
		return relateTaskId;
	}

	/**
	 * 设置关联任务编码
	 * 
	 * @param relateTaskId
	 *            关联任务编码
	 */
	public void setRelateTaskId(String relateTaskId) {
		this.relateTaskId = relateTaskId;
	}

	/**
	 * 获取关联任务状态
	 * 
	 * @return relateTaskStatus 关联任务状态
	 */
	public Integer getRelateTaskStatus() {
		return relateTaskStatus;
	}

	/**
	 * 设置关联任务状态
	 * 
	 * @param relateTaskStatus
	 *            关联任务状态
	 */
	public void setRelateTaskStatus(Integer relateTaskStatus) {
		this.relateTaskStatus = relateTaskStatus;
	}

	/**
	 * 获取关联任务回执
	 * 
	 * @return relateTaskMsg 关联任务回执
	 */
	public String getRelateTaskMsg() {
		return relateTaskMsg;
	}

	/**
	 * 设置关联任务回执
	 * 
	 * @param relateTaskMsg
	 *            关联任务回执
	 */
	public void setRelateTaskMsg(String relateTaskMsg) {
		this.relateTaskMsg = relateTaskMsg;
	}

	/**
	 * 获取子任务优先级
	 * 
	 * @return priority 子任务优先级
	 */
	public Integer getPriority() {
		return priority;
	}

	/**
	 * 设置子任务优先级
	 * 
	 * @param priority
	 *            子任务优先级
	 */
	public void setPriority(Integer priority) {
		this.priority = priority;
	}

	/**
	 * 获取所属任务
	 * 
	 * @return task 所属任务
	 */
	public TaskEntity getTask() {
		return task;
	}

	/**
	 * 设置所属任务
	 * 
	 * @param task
	 *            所属任务
	 */
	public void setTask(TaskEntity task) {
		this.task = task;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "SubTaskEntity [id=" + id + ", objType=" + objType + ", objId=" + objId + ", objName=" + objName
				+ ", actionType=" + actionType + ", async=" + async + ", timeout=" + timeout + ", startDateTime="
				+ startDateTime + ", endDateTime=" + endDateTime + ", status=" + status + ", url=" + url
				+ ", methodType=" + methodType + ", param=" + param + ", obj=" + obj + ", relateTaskId=" + relateTaskId
				+ ", relateTaskStatus=" + relateTaskStatus + ", relateTaskMsg=" + relateTaskMsg + ", priority="
				+ priority + ", task=" + task + "]";
	}

}
